home *** CD-ROM | disk | FTP | other *** search
/ Aminet 41 / Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso / Aminet / comm / misc / ClipWatch.lha / ClipWatch / Sources / MUI_demo.h < prev    next >
C/C++ Source or Header  |  2000-12-16  |  3KB  |  160 lines

  1. /*************************************************************/
  2. /* Includes and other common stuff for the MUI demo programs */
  3. /*************************************************************/
  4.  
  5. /* MUI */
  6. #include <libraries/mui.h>
  7.  
  8. /* System */
  9. #include <dos/dos.h>
  10. #include <graphics/gfxmacros.h>
  11. #include <workbench/workbench.h>
  12.  
  13. /* Prototypes */
  14. #include <clib/alib_protos.h>
  15. #include <clib/exec_protos.h>
  16. #include <clib/dos_protos.h>
  17. #include <clib/icon_protos.h>
  18. #include <clib/graphics_protos.h>
  19. #include <clib/intuition_protos.h>
  20. #include <clib/gadtools_protos.h>
  21. #include <clib/utility_protos.h>
  22. #include <clib/asl_protos.h>
  23.  
  24. #ifndef __GNUC__
  25. #include <clib/muimaster_protos.h>
  26. #else
  27. #include <inline/muimaster.h>
  28. #endif
  29.  
  30. /* ANSI C */
  31. #include <stdlib.h>
  32. #include <string.h>
  33. #include <stdio.h>
  34.  
  35.  
  36. /* Compiler specific stuff */
  37.  
  38. #ifdef _DCC
  39.  
  40. #define REG(x) __ ## x
  41. #define ASM
  42. #define SAVEDS __geta4
  43.  
  44. #else
  45.  
  46. //for GCC
  47. #ifdef __GNUC__
  48. #define REG(reg,arg) arg __asm(#reg)
  49. #else
  50. #define REG(x) register __ ## x
  51. #endif
  52.  
  53. #if defined __MAXON__ || defined __GNUC__
  54. #define ASM
  55. #define SAVEDS
  56. #else
  57. #define ASM    __asm
  58. #define SAVEDS __saveds
  59. #endif /* if defined ... */
  60.  
  61.  
  62. #ifdef __SASC
  63. #include <pragmas/exec_sysbase_pragmas.h>
  64. #else
  65. #ifndef __GNUC__
  66. #include <pragmas/exec_pragmas.h>
  67. #endif /* ifndef __GNUC__ */
  68. #endif /* ifdef SASC      */
  69.  
  70. #ifndef __GNUC__
  71.  
  72. #include <pragmas/dos_pragmas.h>
  73. #include <pragmas/icon_pragmas.h>
  74. #include <pragmas/graphics_pragmas.h>
  75. #include <pragmas/intuition_pragmas.h>
  76. #include <pragmas/gadtools_pragmas.h>
  77. #include <pragmas/utility_pragmas.h>
  78. #include <pragmas/asl_pragmas.h>
  79. #include <pragmas/muimaster_pragmas.h>
  80.  
  81. #endif /* ifndef __GNUC__ */
  82.  
  83. extern struct Library *SysBase,*IntuitionBase,*UtilityBase,*GfxBase,*DOSBase,*IconBase;
  84. struct Library *MUIMasterBase;
  85.  
  86. #endif /* ifdef _DCC */
  87.  
  88.  
  89. /*************************/
  90. /* Init & Fail Functions */
  91. /*************************/
  92.  
  93. static VOID fail(APTR app,char *str)
  94. {
  95.         if (app)
  96.                 MUI_DisposeObject(app);
  97.  
  98. #ifndef _DCC
  99.         if (MUIMasterBase)
  100.                 CloseLibrary(MUIMasterBase);
  101. #endif
  102.  
  103.         if (str)
  104.         {
  105.                 puts(str);
  106.                 exit(20);
  107.         }
  108.         exit(0);
  109. }
  110.  
  111.  
  112. #ifdef _DCC
  113.  
  114. int brkfunc(void) { return(0); }
  115.  
  116. int wbmain(struct WBStartup *wb_startup)
  117. {
  118.         extern int main(int argc, char *argv[]);
  119.         return (main(0, (char **)wb_startup));
  120. }
  121.  
  122. #endif
  123.  
  124.  
  125. #ifdef __SASC
  126. int CXBRK(void) { return(0); }
  127. int _CXBRK(void) { return(0); }
  128. void chkabort(void) {}
  129. #endif
  130.  
  131.  
  132. static VOID init(VOID)
  133. {
  134. #ifdef _DCC
  135.         onbreak(brkfunc);
  136. #endif
  137.  
  138. #ifndef _DCC
  139.         if (!(MUIMasterBase = OpenLibrary(MUIMASTER_NAME,MUIMASTER_VMIN)))
  140.                 fail(NULL,"Failed to open "MUIMASTER_NAME".");
  141. #endif
  142. }
  143.  
  144.  
  145. #ifndef __SASC
  146. static VOID stccpy(char *dest,char *source,int len)
  147. {
  148.         strncpy(dest,source,len);
  149.         dest[len-1]='\0';
  150. }
  151. #endif
  152.  
  153.  
  154. #ifndef MAKE_ID
  155. #define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  156. #endif
  157.  
  158.  
  159. LONG __stack = 8192;
  160.